@echo off
REM 如果输入参数存在，就使用输入参数；如果输入参数不存在，就使用默认值

REM 设定训练过程最大的 epochs，防止过拟合
REM 默认值为 150
IF NOT "%epoch_time%"=="" (
    SET EPOCH_TIME=%epoch_time%
) ELSE (
    SET EPOCH_TIME=150
)

REM 已经训练好的模型加载路径，尝试加载最佳模型 best_model.pth
REM 默认值为 ./model_out/Synapse/SwinUnet
IF NOT "%out_dir%"=="" (
    SET OUT_DIR=%out_dir%
) ELSE (
    SET OUT_DIR=.\model_out\Synapse\SwinUnet2
)

REM 项目的配置文件
REM 默认值为 configs/swin_tiny_patch4_window7_224_lite.yaml
IF NOT "%cfg%"=="" (
    SET CFG=%cfg%
) ELSE (
    SET CFG=configs\swin_tiny_patch4_window7_224_lite.yaml
)

REM 指定数据的根路径，通常用于验证集或测试集
REM 默认值为 datasets/Synapse
IF NOT "%data_dir%"=="" (
    SET DATA_DIR=%data_dir%
) ELSE (
    SET DATA_DIR=datasets\Synapse
)

REM 基础学习率
REM 默认为 0.05
IF NOT "%learning_rate%"=="" (
    SET LEARNING_RATE=%learning_rate%
) ELSE (
    SET LEARNING_RATE=0.05
)

REM 图片大小
REM 默认为 224 * 224
IF NOT "%img_size%"=="" (
    SET IMG_SIZE=%img_size%
) ELSE (
    SET IMG_SIZE=224
)

REM 图片批号
REM 默认为 24
IF NOT "%batch_size%"=="" (
    SET BATCH_SIZE=%batch_size%
) ELSE (
    SET BATCH_SIZE=1
)

REM 打印开始训练的提示信息
echo "start train model"

REM 调用 Python 脚本进行训练
python train.py --dataset Synapse --cfg %CFG% --root_path %DATA_DIR% --max_epochs %EPOCH_TIME% --output_dir %OUT_DIR% --img_size %IMG_SIZE% --base_lr %LEARNING_RATE% --batch_size %BATCH_SIZE%
